﻿//
// Created by francklinson on 2021/3/21.
//

#include "stack.h"
#include <iostream>

int main()
{
    using namespace std;
    Stack st; // create an empty stack
    char ch;
    unsigned long po;
    cout << "Please enter A to add a purchase order,\n"
         << "P to process a PO, or Q to quit.\n";
    while (cin >> ch && toupper(ch) != 'Q')
    {
        while (cin.get() != '\n')
            continue;
        if (!isalpha(ch))
        {
            cout << '\a';
            continue;
        }
        switch (ch)
        {
            case 'A':
            case 'a':
                cout << "Enter a PO number to add: ";
                cin >> po;
                if (st.isFull())
                    cout << "stack already full\n";
                else
                {
                    st.push(po);
                    st.show();
                }

                break;
            case 'P':
            case 'p':
                if (st.isEmpty())
                    cout << "stack already empty\n";
                else
                {
                    st.pop(po);
                    cout << "PO #" << po << " popped\n";
                    st.show();
                }
                break;
            default:
                cout << "not a proper input" << endl;
        }
        cout << "Please enter A to add a purchase order,\n"
             << "P to process a PO, or Q to quit.\n";
    }
    cout << "Bye\n";
    return 0;
}